package com.vtb.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.vtb.entity.DataCache;
import com.vtb.entity.Var;
import com.vtb.utils.DateUtils;

@SuppressWarnings("serial")
public class OpenServlet extends OpenAndClose {
	private static final Log log = LogFactory.getLog(OpenServlet.class);
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		super.doPost(request, response);
		if ("q2r".equals(a2b) || "r2q".equals(a2b)) {
		    if (rrOauth.getR2q()==null && qqOauth.getQ2r()==null) {  //没有此数据的信息
                if (!openRqTb(rrOauth, qqOauth , a2b)) {
                    response.sendRedirect("error?err_code=1000");
                    return;
                }
            }else {    //有该账号的信息
                if ("q2r".equals(a2b)) {
                    qqOauth.setQ2r(Var.OPEN);
                    try {
                        qqDao.update(qqOauth);
                        DataCache.qqmap.put(qqOauth.getUni(), qqOauth);
                        DataCache.qqlastTime.put(qqOauth.getUni(),DateUtils.systemTime());
                        session.setAttribute("q2r", "close");
                    } catch (Exception e) {
                        qqOauth.setQ2r(Var.CLOSE);  //失败后还原标志
                        log.error("开启腾讯微博到人人同步错误：", e);
                        response.sendRedirect("error?err_code=1001");
                        return;
                    }
                }
                if ("r2q".equals(a2b)) {
                    rrOauth.setR2q(Var.OPEN);
                    try {
                        rrDao.update(rrOauth);
                        DataCache.rrmap.put(rrOauth.getUni(), rrOauth);
                        DataCache.rrlastTime.put(rrOauth.getUni(),DateUtils.createTime());
                        session.setAttribute("r2q", "close");
                    } catch (Exception e) {
                        rrOauth.setR2q(Var.CLOSE);   //失败后还原标志
                        log.error("开启人人到腾讯微博同步错误：", e);
                        response.sendRedirect("error?err_code=1000");
                        return;
                    }
                }
            }
        }
		if ("q2s".equals(a2b) || "s2q".equals(a2b)) {
		    if (ssOauth.getS2q()==null && qqOauth.getQ2s()==null) {  //没有此数据的信息
                if (!openQsTb(qqOauth, ssOauth , a2b)) {
                    response.sendRedirect("error?err_code=1000");
                    return;
                }
            }else {    //有该账号的信息
                if ("q2s".equals(a2b)) {
                    qqOauth.setQ2s(Var.OPEN);
                    try {
                        qqDao.update(qqOauth);
                        DataCache.qqmap.put(qqOauth.getUni(), qqOauth);
                        DataCache.qqlastTime.put(qqOauth.getUni(),DateUtils.systemTime());
                        session.setAttribute("q2s", "close");
                    } catch (Exception e) {
                        qqOauth.setQ2s(Var.CLOSE);  //失败后还原标志
                        log.error("开启腾讯微博到新浪微博同步错误：", e);
                        response.sendRedirect("error?err_code=1001");
                        return;
                    }
                }
                if ("s2q".equals(a2b)) {
                    ssOauth.setS2q(Var.OPEN);
                    try {
                        ssDao.update(ssOauth);
                        DataCache.ssmap.put(ssOauth.getUni(), ssOauth);
                        //DataCache.rrlastTime.put(rrOauth.getUni(),DateUtils.createTime());
                        session.setAttribute("s2q", "close");
                    } catch (Exception e) {
                        ssOauth.setS2q(Var.CLOSE);   //失败后还原标志
                        log.error("开启新浪微博到腾讯微博同步错误：", e);
                        response.sendRedirect("error?err_code=1000");
                        return;
                    }
                }
            }
        }
		
		if ("s2r".equals(a2b) || "r2s".equals(a2b)) {
		    if (rrOauth.getR2s()==null && ssOauth.getS2r()==null) {  //没有此数据的信息
                if (!openRqTb(rrOauth, qqOauth , a2b)) {
                    response.sendRedirect("error?err_code=1000");
                    return;
                }
            }else {    //有该账号的信息
                if ("s2r".equals(a2b)) {
                    ssOauth.setS2r(Var.OPEN);
                    try {
                        ssDao.update(ssOauth);
                        DataCache.ssmap.put(ssOauth.getUni(), ssOauth);
                        // DataCache.qqlastTime.put(qqOauth.getUni(),DateUtils.systemTime());
                        session.setAttribute("s2r", "close");
                    } catch (Exception e) {
                        ssOauth.setS2r(Var.CLOSE);  //失败后还原标志
                        log.error("开启新浪微博到人人同步错误：", e);
                        response.sendRedirect("error?err_code=1001");
                        return;
                    }
                }
                if ("r2s".equals(a2b)) {
                    rrOauth.setR2s(Var.OPEN);
                    try {
                        rrDao.update(rrOauth);
                        DataCache.rrmap.put(rrOauth.getUni(), rrOauth);
                        DataCache.rrlastTime.put(rrOauth.getUni(),DateUtils.createTime());
                        session.setAttribute("r2s", "close");
                    } catch (Exception e) {
                        rrOauth.setR2s(Var.CLOSE);   //失败后还原标志
                        log.error("开启人人到新浪微博同步错误：", e);
                        response.sendRedirect("error?err_code=1000");
                        return;
                    }
                }
            }
        }
		lastMap.put("qq", qqOauth);
		lastMap.put("rr", rrOauth);
		lastMap.put("ss", ssOauth);
		session.setAttribute("lastMap", lastMap);
		response.sendRedirect("");
	}

}
